# comment

# interpolations:
#    use curly brackets with name inside kinda like python f string formatting
#
#    available:
#        left  curly bracket    use {left_curly}          or {l}
#        right curly bracket    use {right_curly}         or {r}
#        space                  use {space}               or {s}
#        colon                  use {colon}               or {c}
#        hash                   use {hash}                or {h}
#        hyphen/minus           use {hyphen}/{minus}      or {m}

stand
alone

key_0: -
key_1:val
key_2: val         # inline comment
key_3:  val

# key_1: val       # will throw ValueError duplicated key "key_1"

list_1:
    - -            # not an empty value

    -val-1 -       # notice hyphen-s/minus-es in value only '- '|'-' present
    - -- val-2     # at the lines BEGINNING is significant and will be
    - val-3---     # be stripped alongside indentation
                   # all spaces after last character are stripped
                   # empty lines and inline comments are ignored

    -  val-4       #  notice second space marked as _ in '- _val-4'

list_2:            # first value indentation sets indentation for whole scope
 - val-1           # indentation must be spaces, tabs are not permitted

 - use {l}name{r} for interpolations
 - white{c} {h}FFFFFF
 - black{c} {h}000000

r'raw_list:
    - exact name can be specified as raw before parsing on parser side
    - in such case everything except first '{indentation}- ' or "{indentation}-"
    - will be taken as value until end of line is reached
    - %03{*&}'"-[@#]($%)F:o+{space}  # this is part of the value

# dict:            # dicts are unavailable and will be treated as empty values
#                  # empty values will throw ValueError
#  val_11: foo     # this will throw IndentationError
